(function (mui, $) {
var _Data = {};
// 普通页面跳转
$('body').delegate('[data-url]', 'tap', function () {
	app.open($(this).attr('data-url'));
});

// 点击登录
$('.btn-submit').on('tap', function () {
	var dom = this;
	var data = {
		sign     : $('[name=mobile]').val(),// 手机号
		username : $('[name=username]').val(),// 用户名
		password : $('[name=password]').val(),// 密码
	};
	if (!data.sign) { app.toast('请输入手机号'); return; }
	//if (!data.username) { app.toast('请输入用户名'); return; }
	if (!data.password) { app.toast('请输入密码'); return; }
	
	$(dom).prop('disabled', true);
	app.log('登录参数：', data);
	$.ajax({
		'dataType' : 'json',
		'type'     : 'post',
		'url'      : app.url('App/Sign/Index/login'),
		'data'     : {'token':app.store('token'), 'data':data}
	})
	.fail(function (res) {
		$(dom).prop('disabled', false);
		times = 0;
		app.log('登录失败：', res);
		app.toast('登录失败');
	})
	.done(function (res) {
		$(dom).prop('disabled', false);
		app.log('登录结果：', res);
		if (500 == res.code) { app.toast('你还未登录'); return; }
		if (300 == res.code) { app.toast(res.msg); return; }
		if (200 != res.code) { app.toast('请求失败'); return; }
		if (res.msg) { app.toast(res.msg); }
		
		app.store('token', res.data.uuid);
		app.store('member', res.data);
		plus.webview.getWebviewById('member.html').evalJS('member.refresh('+JSON.stringify(res.data)+')');
		setTimeout(function () { plus.webview.currentWebview().close(); }, 500);
	})
	;
});

// 尝试使用第三方账号登录系统
function doAuthLogin (service) {
	var openid = service.authResult.uid || service.authResult.openid;
	var data = {
		'source_type' : service.id,
		'open_id'     : openid,
		'tag'         : service.userInfo
	};
	app.log('第三方登录参数：' + JSON.stringify(data));
	
	// 尝试第三方账号登录
	$.ajax({
		dataType : 'json',
		type     : 'post',
		url      : app.url('App/Sign/Index/login'),
		data     : {'data':data},
	})
	.fail(function (res) {
		app.log(res);
		plus.nativeUI.closeWaiting();
		app.toast('第三方授权完成，向服务器登录发生错误');
	})
	.done(function (res) {
		plus.nativeUI.closeWaiting();
		
		app.log('第三方登录结果：', res);
		if (300 == res.code) {
			app.open('member.register.oauth.html', data);
			setTimeout(function () { plus.webview.currentWebview().close(); }, 500);
			return;
		}
		if (200 != res.code) { app.toast('请求失败'); return; }
		if (res.msg) { app.toast(res.msg); }
		
		// 当前第三方账号已在系统中存在
		app.store('token', res.data.uuid);
		app.store('member', res.data);
		plus.webview.getWebviewById('member.html').evalJS('member.refresh('+JSON.stringify(res.data)+')');
		setTimeout(function () { plus.webview.currentWebview().close(); }, 500);
	})
	;
}
// 获取第三方登录授权
function getAuth (service) {
	plus.nativeUI.showWaiting();
	service.login(function() {
		service.getUserInfo(function() {
			doAuthLogin(service);
			
		}, function(e) {
			app.toast("获取用户信息失败：" + e.message);
			plus.nativeUI.closeWaiting();
		});
	}, function(e) {
		app.log(e);
		app.toast("登录认证失败");
		plus.nativeUI.closeWaiting();
	});
}

$('body').delegate('.oauth-btn', 'tap', function() {
	var dom = this, type = $(dom).attr('data-type');
	
	plus.oauth.getServices(function(services) {
		for (var i in services) {
			var service = services[i];
			
			if (type != service.id) {
				// 不是点击的第三方登录服务
			} else if (!!service.serviceReady) {
				var txt = "系统未安装“" + service.description + "”服务，是否立即安装？";
				plus.nativeUI.confirm(txt, function(e) {
					if (e.index == 0) { ervice.installService(); }
				}, service.description);
				
			} else {
				getAuth(service);
			}
		}
	}, function(e) {
		app.toast("获取第三方登录服务失败");
	});
});

var last = new Date(), times = 0;
$('.btn-mode-switch').on('tap', function () {
	if (new Date().getTime() - last.getTime() > 1000) {
		last = new Date(); times=0
	} else {
		last = new Date(); times++;
	}
	if (times > 20) {
		times = 0;
		var dev = !('true' == localStorage.getItem('dev'));
		app.toast(dev ? '你已切换到开发模式' : '你已切换到生产模式');
		app.store('dev', dev);
		
		app.link.reset();
		plus.webview.getWebviewById('member.html').evalJS('app.link.reset()');
		plus.webview.getWebviewById('home.html').evalJS('app.link.reset()');
		plus.webview.getWebviewById('cart.html').evalJS('app.link.reset()');
		plus.webview.getWebviewById('category.scroll.html').evalJS('app.link.reset()');
		plus.webview.getWebviewById('category.html').evalJS('app.link.reset()');
	}
});

})(mui, $);
